/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.documentar.controller;

import br.com.documentar.interfacee.InterfaceController;
import br.com.documentar.model.CronogramaAtualizacaoModel;
import java.util.List;
import javax.swing.DefaultComboBoxModel;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author Santos
 */
public class CronogramaAtualizacaoController implements InterfaceController<CronogramaAtualizacaoModel> {

    private final br.com.documentar.DAO.CronogramaAtualizacaoDAO dao = new br.com.documentar.DAO.CronogramaAtualizacaoDAO();

    @Override
    public CronogramaAtualizacaoModel getModel() {
        return new CronogramaAtualizacaoModel();
    }

    @Override
    public DefaultTableModel insertTableModel(CronogramaAtualizacaoModel model) {
        model.getModelTable().setNumRows(0);
        for (br.com.documentar.model.CronogramaAtualizacaoModel p : dao.getDados(model)) {
            model.getModelTable().addRow(new Object[]{
                p.getClienteModel().getCodigo() + " - Fantasia: " + p.getClienteModel().getNomeFantasia() + " - Razão:" + p.getClienteModel().getNomeRazao() + " - Unidade: " + p.getClienteModel().getCodigoUnidadeNegocio(),
                p.getColaboradorModel().getCodigo() + " - " + p.getColaboradorModel().getNome(),
                p.getVersaoModel().getProduto().getCodigo() + " - " + p.getVersaoModel().getProduto().getNome(),
                p.getVersaoModel().getCodigo() + " - " + p.getVersaoModel().getNome(),
                p.getDataAgendada(),
                p.getObservacao(),
                p.getLocalRemota(),
                p.getDataCancelamento(),
                p.getMotivoCancelamento(),
                p.getDataConclusao()
            });
        }
        return model.getModelTable();
    }

    @Override
    public DefaultTableModel getDadosTableModel(CronogramaAtualizacaoModel model) {
        return insertTableModel(model);
    }

    @Override
    public boolean setDados(CronogramaAtualizacaoModel model) {
        return dao.setDados(model);
    }

    @Override
    public DefaultComboBoxModel getDadosComboBoxModel(CronogramaAtualizacaoModel model) {
        return insertComboBoxModel(model);
    }

    @Override
    public DefaultComboBoxModel insertComboBoxModel(CronogramaAtualizacaoModel model) {
        for (br.com.documentar.model.CronogramaAtualizacaoModel p : dao.getDados(model)) {
            //    model.getModelComboBox().addElement(p.getCodigo() + " - " + p.getNome());
        }
        return model.getModelComboBox();
    }

    /**
     * Metodo responsavel por retornar dados em formato de lista
     *
     * @param model
     * @return
     */
    public List<CronogramaAtualizacaoModel> getDados(CronogramaAtualizacaoModel model) {
        return dao.getDados(model);
    }

    public DefaultTableModel getDadosTableModelRelatorio(CronogramaAtualizacaoModel model) {
        return insertTableModelRelatorio(model);
    }

    public DefaultTableModel insertTableModelRelatorio(CronogramaAtualizacaoModel model) {
        model.getModelTable().setNumRows(0);
        for (br.com.documentar.model.CronogramaAtualizacaoModel p : dao.getDados(model)) {
            model.getModelTable().addRow(new Object[]{
                "Fantasia: " + p.getClienteModel().getNomeFantasia() + " - Razão:" + p.getClienteModel().getNomeRazao() + " - Unidade: " + p.getClienteModel().getCodigoUnidadeNegocio(),
                p.getColaboradorModel().getNome(),
                p.getVersaoModel().getProduto().getNome(),
                p.getVersaoModel().getNome(),
                p.getDataAgendada(),
                p.getObservacao(),
                p.getLocalRemota(),
                p.getDataCancelamento(),
                p.getMotivoCancelamento(),
                p.getDataConclusao()
            });
        }
        return model.getModelTable();
    }

}
